﻿
namespace SwtorCalculator {
    using System;

    /// <summary>
    /// Inquisitor base ability class
    /// Inherits Abilities
    /// </summary>
    internal class InquisitorAbil : Abilities {
        /// <summary>
        /// Initializes a New Instance of the InquisitorAbil Class
        /// </summary>
        internal InquisitorAbil() { }

        internal void ChannelTheForce() {
            /* Instant
             * Cooldown: 20 mins
             * Summons the Force to aid you and your companion,
             * immediately finishing the cooldown on Electrocute and
             * restoring 2% of maximum health every 3 seconds. Requires
             * and active companion. Lasts 1 minute.
             */
        }

        internal void CrushingDarkness() {
            /* Activation: 2 secs
             * Force: 40
             * Cooldown: 15 secs
             * Summons a dark cloud of energy to crush the target, 
             * instantly dealing 108 - 139 kinetic damage and an additional 
             * 178 kinetic damage over 6 seconds.
             */
        }

        internal void Electrocute() {
            /* Instant
             * Force: 20
             * Cooldown: 1 min
             * Electrocutes the target, dealing 30 - 45 energy damage and stunning it for 4 seconds.
             */
        }

        internal void ForceLightning() {
            /* Channeled: 3 secs
             * Force: 30
             * Cooldown: 6 secs
             * Deals 153 energy damage to the target over the duration of the effect.
             */
        }

        internal void ForceSlow() {
            /* Instant
             * Force: 15
             * Cooldown: 12 secs
             * Deals 104 - 123 kinetic damage and slows the target's movement speed by 50% for 6 seconds.
             */
        }

        internal void ForceSpeed() {
            // Dont know if ill actually implement this, probably just make it and option on the boss tab to reduce Time Off Boss
        }

        internal void Overload() {
            /* Instant
             * Force: 20
             * Cooldown: 30 secs
             * Deals 45 - 51 energy damage and knocks back all enemies within 8 meters.
             */
        }

        internal void Recklessness() {
            /* Instant
             * Cooldown: 1 min 30 secs
             * Grants 2 charges of Recklessness, which increases the force critical chance of 
             * your direct attacks and heals by 60%. Each time a direct force ability crits, 
             * you lose 1 charge. Last 20 seconds.
             */
        }

        internal void Sacrifice() {
            /* Instant
             * Cooldown: 5 mins
             * Sacrifices your companion to the brink of death to instantly heal you for 40% of your total health. 
             */
        }

        internal void Shock() {
            /* Instant
             * Force: 45
             * Cooldown: 6 secs
             * Shocks the target for 77 - 89 energy damage.
             */
        }

        internal void Thrash() {
            /* Instant
             * Force: 25
             * Strikes the target twice. Each hit deals 51 weapon damage.
             */
        }
    }

    /// <summary>
    /// Warrior base ability class
    /// Inherits Abilities
    /// </summary>
    internal class WarriorAbil : Abilities {
        /// <summary>
        /// Initializes a New Instance of the WarriorAbil Class
        /// </summary>
        internal WarriorAbil() { }
    }

    /// <summary>
    /// Agent base ability class
    /// Inherits Abilities
    /// </summary>
    internal class AgentAbil : Abilities {
        /// <summary>
        /// Initializes a New Instance of the AgentAbil Class
        /// </summary>
        internal AgentAbil() { }
    }

    /// <summary>
    /// Hunter base ability class
    /// Inherits Abilities
    /// </summary>
    internal class HunterAbil : Abilities {
        /// <summary>
        /// Initializes a New Instance of the HunterAbil Class
        /// </summary>
        internal HunterAbil() { }
    }

    /// <summary>
    /// Consular base ability class
    /// Inherits Abilities
    /// </summary>
    internal class ConsularAbil : Abilities {
        /// <summary>
        /// Initializes a New Instance of the ConsularAbil Class
        /// </summary>
        internal ConsularAbil() { }
    }

    /// <summary>
    /// Knight base ability class
    /// Inherits Abilities
    /// </summary>
    internal class KnightAbil : Abilities {
        /// <summary>
        /// Initializes a New Instance of the KnightAbil Class
        /// </summary>
        internal KnightAbil() { }
    }

    /// <summary>
    /// Smuggler base ability class
    /// Inherits Abilities
    /// </summary>
    internal class SmugglerAbil : Abilities {
        /// <summary>
        /// Initializes a New Instance of the SmugglerAbil Class
        /// </summary>
        internal SmugglerAbil() { }
    }

    /// <summary>
    /// Trooper base ability class
    /// Inherits Abilities
    /// </summary>
    internal class TrooperAbil : Abilities {
        /// <summary>
        /// Initializes a New Instance of the TrooperAbil Class
        /// </summary>
        internal TrooperAbil() { }
    }
}